// 管理用户相关信息、token
import {userLogin} from '../api/user'
import router from '../router/index.js'
import store from './index'
export default {
    namespaced:true,
    state:{
        userInfo:null
    },
    mutations:{
        initInfoMut(state,info){ //登录、退出登陆
            state.userInfo = info //向状态机缓存用户信息，为了跨组件同步实时共享
            if(info){
                localStorage.setItem('userInfo',JSON.stringify(info)) //持久缓存
            }else{
                localStorage.removeItem('userInfo') 
                router.push('/')
            }
        }
    },
    actions:{  //异步action，让状态机拥有请求异步接口的能力
        userLoginAct(context,{info,target}){
            userLogin(info).then(res=>{
                console.log('状态机',res);
                let uinfo = res.data.data
                context.commit('initInfoMut',uinfo)
                router.push(target)
                store.dispatch('cart/initCartAct',uinfo._id) //登录成功后，初始化购物车数据
            })
        }
    }
}